#ifndef _SCRIPTABLEVECTOR_
#define _SCRIPTABLEVECTOR_

#include <vector>
#include "Scriptable.hpp"

/**
 * A read-only, scriptable wrapper for a vector of Scriptable* objects.
 */
class ScriptableVector:public Scriptable{
protected:
    
public:
    /** Vector being wrapped. */
    std::vector<Scriptable*> vector;

    ScriptableVector();

    Scriptable* at(int i);
    int size();
    bool remove(Scriptable* element);

    virtual void bind(lua_State* luaState);
    virtual void push(lua_State* luaState);

};

#endif